package com.ym.medical.domain.vo;

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.ym.base.enums.FlagEnum;
import com.ym.common.constant.BeanCovert;
import com.ym.medical.domain.entity.DoctorDetailsEntity;
import com.ym.medical.domain.entity.DoctorLabelEntity;
import com.ym.medical.enums.CounsellingRoomCourTypeEnum;
import com.ym.medical.enums.DoctorDetailsDoctTypeEnum;
import com.ym.medical.enums.DoctorJobTitle;
import com.ym.medical.enums.UserCertStateEnum;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import tk.mybatis.mapper.annotation.LogicDelete;

import java.util.Date;
import java.util.List;

/**
 * ComputerName:DESKTOP-ANGHV23
 * Author:wenbo
 * Date: 2019-05-05
 * Time: 10:56:23
 * Comment:查询扩展工具类
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class DoctorDetailsVo extends BeanCovert<DoctorDetailsEntity> {

	private Long id;

	/**
	 * 全/专科
	 */
	@ApiModelProperty("全/专科")
	@JsonSerialize(converter = CounsellingRoomCourTypeEnum.Covert.class)
	private String doctCategory;

	/**
	 * 医生编码
	 */
	@ApiModelProperty("医生编码")
	private String doctCode;

	/**
	 * 职称
	 */
	@ApiModelProperty("职称")
	@JsonSerialize(converter = DoctorJobTitle.Covert.class)
	private String jobTitle;

	/**
	 * 资质认证状态
	 */
	@ApiModelProperty("资质认证状态")
	@JsonSerialize(converter = UserCertStateEnum.Covert.class)
	private String qualificationStatus;

	/**
	 * 资质认证时间
	 */
	@ApiModelProperty("资质认证时间")
	private Date qualificationTime;

	/**
	 * 医院编码
	 */
	@ApiModelProperty("医院编码")
	private String hospitalCode;

	/**
	 * 标准科室编码
	 */
	@ApiModelProperty("标准科室编码")
	private String deptCodeStand;

	/**
	 * 科室编码
	 */
	@ApiModelProperty("科室编码")
	private String deptCode;

	/**
	 * 医学教育背景
	 */
	@ApiModelProperty("医学教育背景")
	private String eduBack;

	/**
	 * 学术研究成果/获奖
	 */
	@ApiModelProperty("学术研究成果/获奖")
	private String achiAward;

	/**
	 * 医生寄语
	 */
	@ApiModelProperty("医生寄语")
	private String doctMessage;

	/**
	 * 创建人
	 */
	@ApiModelProperty("创建人")
	private Long creator;

	/**
	 * 创建时间
	 */
	@ApiModelProperty("创建时间")
	private Date createTime;

	/**
	 * 修改人
	 */
	@ApiModelProperty("修改人")
	private Long modifier;

	/**
	 * 修改时间
	 */
	@ApiModelProperty("修改时间")
	private Date modifyTime;

	/**
	 * 删除标志
	 */
	@ApiModelProperty("删除标志")
	@JsonSerialize(converter = FlagEnum.Covert.class)
	@LogicDelete
	private String deleted;

	/**
	 * 留言内容
	 */
	@ApiModelProperty("留言内容")
	private String spMessage;

	/**
	 * 自动留言(00否01是)
	 */
	@ApiModelProperty("自动留言(00否01是)")
	@JsonSerialize(converter = FlagEnum.Covert.class)
	private String isAutoReply;

	/**
	 * 医生类别 A/B/C/D/E
	 */
	@ApiModelProperty("医生类别 A/B/C/D/E")
	@JsonSerialize(converter = DoctorDetailsDoctTypeEnum.Covert.class)
	private String doctType;

	/**
	 * 从业时间
	 */
	@ApiModelProperty("从业时间")
	private Date workTime;

	/**
	 * 门诊时间
	 */
	@ApiModelProperty("门诊时间")
	private String theTime;

	/**
	 * 擅长
	 */
	@ApiModelProperty("擅长")
	private String theGoods;

	/**
	 * 排序
	 */
	@ApiModelProperty("排序")
	private Integer sortNum;

	/**
	 * 个人介绍
	 */
	@ApiModelProperty("个人介绍")
	private String theDesc;


	/**
	 * 医院名
	 */
	private String hosName;
	/**
	 * 科室名
	 */
	private String deptName;
	/**
	 * 省
	 */
	private String prov;
	/**
	 * 市
	 */
	private String city;
	/**
	 * 县
	 */
	private String area;
	/**
	 * 医院等级
	 */
	private String hosLevel;
	/**
	 * 职称
	 */
	private String titleName;
	/**
	 * 标准科室名
	 */
	private String standartdDeptName;

	/**
	 * 医生姓名
	 */
	private String realName;
	/**
	 * 性别
	 */
	private String sex;
	/**
	 * 手机号
	 */
	private String phoneNo;
	/**
	 * 证件类型  身份证	1 港澳台通行证	10部队干部离休证
	 */
	private String cardType;
	/**
	 * 证件号码
	 */
	private String cardNo;

	/**
	 * 关键字
	 */
	private String keywords;

	@ApiModelProperty("头像id")
	private String headUrl;

	/**
	 * 医生擅长标签
	 */
	private List<DoctorLabelEntity> doctorLabels;

	/**
	 * 医生标签
	 */
	private List<DoctorLabelEntity> normals;

}
